由 dbf 表空间文件恢复 Oracle 数据 |
您所在的位置:网站首页 › oracle 删除dbf › 由 dbf 表空间文件恢复 Oracle 数据 |
一、需求分析
服务器A中的数据库实例被删除,幸好dbf文件还在,遂准备由dbf文件恢复数据到服务器B续命,待恢复的数据库实例名为 orcl1 服务器B中的数据库为新安装,已经初始化好 orcl 实例,首先对比两个实例的dbf文件 ↑ 服务器A中待恢复的 orcl1 实例dbf文件 ↑
↑ 服务器B中的 orcl 实例dbf文件 ↑
对比可知新增的dbf文件是PORTAL.DBF、SDE.DBF、WZYZT.DBF,猜测各自对应三个同名用户 思路就出来了: 1、新建orcl1实例 2、新增三个表空间文件 3、新增三个同名用户,分别授权 4、恢复数据查看校验 二、创建orcl1实例1、打开 “开始 - 所有程序 - Oracle - OraDb11g_home1 - 配置和移植工具 - Database Configuration Assistant” 步骤 1:默认 步骤 2:默认 步骤 3:全局数据库名:orcl1,SID:orcl1 步骤 4:默认 步骤 5 填写管理员账户的密码 后面全部默认 确认开始创建orcl1实例 done,使用 PL/SQL 进行连接测试 三、恢复dbf1、使用 PL/SQL 连接到orcl1实例,创建表空间及用户,对用户授权 create tablespace portal datafile 'C:\app\Administrator\oradata\orcl1\portal.dbf' size 1024M; create tablespace sde datafile 'C:\app\Administrator\oradata\orcl1\sde.dbf' size 1024M; create tablespace wzyzt datafile 'C:\app\Administrator\oradata\orcl1\wzyzt.dbf' size 1024M; create user portal identified by portal default tablespace portal; create user sde identified by sde default tablespace sde; create user wzyzt identified by wzyzt default tablespace wzyzt; grant connect,dba,resource to portal; grant connect,dba,resource to sde; grant connect,dba,resource to wzyzt;2、使用 sqlplus 以 sysdba 身份登录,对控制文件进行备份; sqlplus /nolog(此处不能加分号,否则黑屏窗口会一闪而过) conn /as sysdba 登录 执行 alter database backup controlfile to trace; 备份控件文件到trace文件 找到oracle的安装目录,如:C:\app\Administrator,按修改时间降序,找到最近的trace文件(orcl1_ora_xxx.trc)备份好(建议使用Everything) 3、shutdown immediate 停止数据库实例 4、备份C:\app\Administrator\oradata目录下的该实例文件夹(例如:orcl),接着将该实例文件夹删除,必须是全部删除,在oradata文件夹下新建orcl1文件夹把需恢复的dbf拷贝到orcl1目录下。 5、执行 startup nomount,把数据库启动到nomount状态 6、从第2步备份出来trace文件中拷贝CREATE CONTROLFILE部分语句来重建控制文件: 红框 1 改为ARCHIVELOG 红框 2 因为前面是根据恢复的dbf创建了对应表空间,所以这里不用改,但还是需要确认一下 执行修改后的sql CREATE CONTROLFILE REUSE DATABASE "ORCL1" NORESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 'C:\APP\ADMINISTRATOR\ORADATA\ORCL1\REDO01.LOG' SIZE 50M BLOCKSIZE 512, GROUP 2 'C:\APP\ADMINISTRATOR\ORADATA\ORCL1\REDO02.LOG' SIZE 50M BLOCKSIZE 512, GROUP 3 'C:\APP\ADMINISTRATOR\ORADATA\ORCL1\REDO03.LOG' SIZE 50M BLOCKSIZE 512 -- STANDBY LOGFILE DATAFILE 'C:\APP\ADMINISTRATOR\ORADATA\ORCL1\SYSTEM01.DBF', 'C:\APP\ADMINISTRATOR\ORADATA\ORCL1\SYSAUX01.DBF', 'C:\APP\ADMINISTRATOR\ORADATA\ORCL1\UNDOTBS01.DBF', 'C:\APP\ADMINISTRATOR\ORADATA\ORCL1\USERS01.DBF', 'C:\APP\ADMINISTRATOR\ORADATA\ORCL1\PORTAL.DBF', 'C:\APP\ADMINISTRATOR\ORADATA\ORCL1\SDE.DBF', 'C:\APP\ADMINISTRATOR\ORADATA\ORCL1\WZYZT.DBF' CHARACTER SET ZHS16GBK ;7、执行 recover database,这两个报错直接无视 8、执行 alter database open; 恢复完成,登录数据库进行验证
参考链接:http://blog.sina.com.cn/s/blog_a59b6d310102vat0.html
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |